package cn.b.sky.mes.hr.service;

import java.util.List;

import cn.b.sky.mes.hr.model.PersonnelException;
import cn.b.sky.mes.hr.model.condition.PersonnelExceptionCondition;

public interface PersonnelExceptionService {
  /**
   * 
   * <strong>Title : getPersonnelExceptionById<br></strong>
   * <strong>Description : </strong>根据ID获取记录<br> 
   * <strong>Create on : 2016-3-28 下午2:52:18<br></strong>
   * <p>
   * @param id
   * @return
   * PersonnelException
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br> 
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  PersonnelException getPersonnelExceptionById(Long id);

  /**
   * 
   * <strong>Title : insertPersonnelException<br></strong>
   * <strong>Description : </strong>新增<br> 
   * <strong>Create on : 2016-3-28 下午2:52:45<br></strong>
   * <p>
   * @param personnelException
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void insertPersonnelException(PersonnelException personnelException);

  /**
   * 
   * <strong>Title : updatePersonnelException<br></strong>
   * <strong>Description : </strong>更新<br> 
   * <strong>Create on : 2016-3-28 下午2:52:54<br></strong>
   * <p>
   * @param personnelException
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  void updatePersonnelException(PersonnelException personnelException);

  /**
   * 
   * <strong>Title : deletePersonnelException<br></strong>
   * <strong>Description : </strong>删除<br> 
   * <strong>Create on : 2016-3-28 下午2:53:14<br></strong>
   * <p>
   * @param id
   * void
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  String deletePersonnelException(Long id);

  /**
   * 
   * <strong>Title : getPersonnelExceptionListByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件获取数据<br> 
   * <strong>Create on : 2016-3-31 下午5:30:30<br></strong>
   * <p>
   * @param condition
   * @return
   * List<PersonnelException>
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  List<PersonnelException> getPersonnelExceptionListByCondition(PersonnelExceptionCondition condition);

  /**
   * 
   * <strong>Title : getPersonnelExceptionCountByCondition<br></strong>
   * <strong>Description : </strong>根据查询条件获取数据条数<br> 
   * <strong>Create on : 2016-3-31 下午5:30:57<br></strong>
   * <p>
   * @param condition
   * @return
   * int
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  int getPersonnelExceptionCountByCondition(PersonnelExceptionCondition condition);

  /**
   * 
   * <strong>Title : isPeresonnelExceptionValid<br></strong>
   * <strong>Description : </strong>校验同一个人，同一天 起止时间不得重叠，起止时间不得超过24小时<br> 
   * <strong>Create on : 2016-3-31 下午5:32:01<br></strong>
   * <p>
   * @param personnelException
   * @return
   * boolean
   * @throws 
   * @author Yong.Dai<br>
   * @version <strong>v1.0.0</strong><br>
   * <br>
   * <strong>修改历史:</strong><br>
   * 修改人 | 修改日期 | 修改描述<br>
   * -------------------------------------------<br>
   * <br>
   * <br>
   */
  boolean isPeresonnelExceptionValid(PersonnelException personnelException);
}
